﻿using System;
using System.Runtime.Serialization;

namespace Me.Practice.ElevatorEngine.Domain.Entity
{
	[Serializable]
	[DataContract]
	public class ElevatorReport
	{
		public ElevatorReport(Init init)
		{
		    Id = init.Id;
			CurrentFloorNumber = init.CurrentFloorNumber;
			CurrentPersonCount = init.CurrentPersonCount;
			CurrentCapacity = init.CurrentCapacity;	
			State = init.State;			
		}

        [DataMember]
        public string Id { get; private set; }
		
		[DataMember]
		public int CurrentFloorNumber { get; private set; }
		
		[DataMember]
		public int CurrentPersonCount { get; private set; }
		
		[DataMember]
		public int CurrentCapacity { get; private set; }
		
		[DataMember]
		public ElevatorState State { get; private set; }

		public class Init
		{
            public string Id { get; set; }
			public int CurrentFloorNumber { get; set; }
			public int CurrentPersonCount { get; set; }
			public int CurrentCapacity { get; set; }
			public ElevatorState State { get; set; }
		}
	}
}
